package org.framework.edge.builder.application;

import org.wu.framework.web.response.Result;
import org.wu.framework.web.response.ResultFactory;
import org.framework.edge.builder.domain.model.docker.images.DockerImages;
import org.framework.edge.builder.application.command.docker.images.DockerImagesRemoveCommand;
import org.framework.edge.builder.application.command.docker.images.DockerImagesStoryCommand;
import org.framework.edge.builder.application.command.docker.images.DockerImagesUpdateCommand;
import org.framework.edge.builder.application.command.docker.images.DockerImagesQueryListCommand;
import org.framework.edge.builder.application.command.docker.images.DockerImagesQueryOneCommand;
import org.framework.edge.builder.application.dto.DockerImagesDTO;
import java.util.List;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import org.framework.edge.builder.application.command.docker.images.DockerImagesExcelExport;
import org.framework.edge.builder.application.command.docker.images.DockerImagesExcelImport;
/**
 * describe docker镜像 
 *
 * @author Jia wei Wu
 * @date 2025/07/10 05:16 下午
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication 
 **/

public interface DockerImagesApplication {


    /**
     * describe 新增docker镜像
     *
     * @param dockerImagesStoryCommand 新增docker镜像     
     * @return {@link Result<DockerImages>} docker镜像新增后领域对象     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    Result<DockerImages> story(DockerImagesStoryCommand dockerImagesStoryCommand);

    /**
     * describe 批量新增docker镜像
     *
     * @param dockerImagesStoryCommandList 批量新增docker镜像     
     * @return {@link Result<List<DockerImages>>} docker镜像新增后领域对象集合     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    Result<List<DockerImages>> batchStory(List<DockerImagesStoryCommand> dockerImagesStoryCommandList);

    /**
     * describe 更新docker镜像
     *
     * @param dockerImagesUpdateCommand 更新docker镜像     
     * @return {@link Result<DockerImages>} docker镜像领域对象     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    Result<DockerImages> updateOne(DockerImagesUpdateCommand dockerImagesUpdateCommand);

    /**
     * describe 查询单个docker镜像
     *
     * @param dockerImagesQueryOneCommand 查询单个docker镜像     
     * @return {@link Result<DockerImagesDTO>} docker镜像DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    Result<DockerImagesDTO> findOne(DockerImagesQueryOneCommand dockerImagesQueryOneCommand);

    /**
     * describe 查询多个docker镜像
     *
     * @param dockerImagesQueryListCommand 查询多个docker镜像     
     * @return {@link Result <List<DockerImagesDTO>>} docker镜像DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    Result <List<DockerImagesDTO>> findList(DockerImagesQueryListCommand dockerImagesQueryListCommand);

    /**
     * describe 分页查询多个docker镜像
     *
     * @param dockerImagesQueryListCommand 分页查询多个docker镜像     
     * @return {@link Result <LazyPage<DockerImagesDTO>>} 分页docker镜像DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    Result <LazyPage<DockerImagesDTO>> findPage(int size,int current,DockerImagesQueryListCommand dockerImagesQueryListCommand);

    /**
     * describe 删除docker镜像
     *
     * @param dockerImagesRemoveCommand 删除docker镜像     
     * @return {@link Result<DockerImages>} docker镜像     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    Result<DockerImages> remove(DockerImagesRemoveCommand dockerImagesRemoveCommand);

    /**
     * describe 导出docker镜像
     *
     * @param dockerImagesQueryListCommand 导出docker镜像     
     * @return {@link List<DockerImagesExcelExport>} docker镜像     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    public List<DockerImagesExcelExport> exportExcel(DockerImagesQueryListCommand dockerImagesQueryListCommand);

    /**
     * describe 导入docker镜像
     *
     * @param dockerImagesExcelImportList 导入docker镜像     
     * @return {@link Result<List<DockerImagesExcelImport>>} docker镜像     
     
     * @author Jia wei Wu
     * @date 2025/07/10 05:16 下午
     **/

    public Result<List<DockerImagesExcelImport>> importExcel(List<DockerImagesExcelImport> dockerImagesExcelImportList);

}